//
//  JAGFeedAdMeta.h
//  JAGatherAdDemo
//
//  Created by Yc on 2022/11/30.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

#ifndef JAGFeedAdMeta_h
#define JAGFeedAdMeta_h

typedef NS_ENUM(NSInteger, JAGCreativeType) {
    JAGCreativeTypeUnkown        = 0,  // unknown
    JAGCreativeTypeSingleImage   = 1,  // 单图
    JAGCreativeTypeMultiImage    = 2,  // 多图
    JAGCreativeTypeVideo         = 3,  // 视频
};

@class JAGFeedVideoConfig;

@protocol JAGFeedAdMeta <NSObject>

/// 类型
- (JAGCreativeType)metaCreativeType;

/// 标题
- (NSString *)metaTitle;

/// 内容
- (NSString *)metaContent;

/// 广告图标Url
- (NSString *)metaIconUrl;

/// 平台logo Url
- (NSString *)metaLogoUrl;

/// 平台logo ImageView
- (UIImageView *)metaLogoView;

/// 图片素材宽度
- (NSInteger)metaImageWidth;

/// 图片素材高度
- (NSInteger)metaImageHeight;

/// 单图Url
- (NSString *)metaImageUrl;

/// 多图Url集合
- (NSArray<NSString *> *)metaImageUrls;

/// 信息流视频Url
- (NSString *)metaVideoUrl;

/// 视频时长 (单位 s)
- (NSTimeInterval)metaVideoDuration;

/// 广告交互类型 (0:网页跳转,1:下载 2;DeepLink) 默认值:0
- (NSInteger)metaTargetType;

/// 引导语[立即下载、查看详情等]
- (NSString *)metaActionTitle;

/// 应用类广告的星级（5星制度）
- (CGFloat)metaAppRating;

/// 自定义平台标识(若是SDK已支持的广告平台则返回值与JAGPlatformType枚举值对应)
- (NSString *)metaCustomPlatformIdentifier;

#pragma mark - Action

/// 绑定数据
/// - Parameters:
///   - container: 广告容器 传入前需设置frame 【必传】
///   - clickViews: 支持点击的广告元素子控件   传入前需设置frame 【必传】
- (void)attachAd:(UIView *_Nonnull)container
       clickView:(NSArray<UIView *> *_Nonnull)clickViews;

/// 解绑数据
- (void)unAttachAd;

/**
 隐藏广告平台默认存在的logo视图
 调用时机：attachAd 绑定数据前设置
 */
- (void)hiddenAdPlatformLogo;

/**
 获取该物料广告是否有效
 注意：包括图文及视频类型广告都通过该接口获取
 */
- (BOOL)isAdValid;

/// 返回视频播放器
/// - Parameter config: 播放器配置【必须设置】
- (UIView *_Nullable)getMediaView:(JAGFeedVideoConfig *_Nonnull)config;

/// 销毁释放广告资源
- (void)destroyAd;

@end


#endif /* JAGFeedAdMeta_h */
